package hr.ctg.util;

import hr.ctg.domain.model.Dogadjaj;
import hr.ctg.domain.model.Mjesto;
import hr.ctg.domain.model.Objekt;
import hr.ctg.domain.model.Otok;
import hr.ctg.domain.model.Park;

import org.jboss.seam.Component;
import org.jboss.seam.cache.CacheProvider;

public class CacheUtil {
	@SuppressWarnings("unchecked")
	private static void remove(final String region, final String key) {
		((CacheProvider) Component
				.getInstance("org.jboss.seam.cache.cacheProvider")).remove(
				region, key);

	}

	public static void clearCache(final Objekt objekt, final String lang) {
		remove("pageFragments", "statistics");
		remove("objekti", Integer.toString(objekt.getIdObjekta()));
		remove("pageFragments", "objekt_column1_" + objekt.getIdObjekta() + "_"
				+ lang);
		remove("slike", "idObjekta_" + objekt.getIdObjekta());
	}

	public static void clearCache(final Mjesto mjesto, final String lang) {
		remove("pageFragments", "mjesto_column1_" + mjesto.getIdMjesta() + "_"
				+ lang);
		remove("slike", "idMjesta_" + mjesto.getIdMjesta());
	}

	public static void clearCache(final Otok otok, final String lang) {
		remove("pageFragments", "otok_column1_" + otok.getIdOtoka() + "_"
				+ lang);
		remove("slike", "idOtoka_" + otok.getIdOtoka());
	}

	public static void clearCache(final Park park, final String lang) {
		remove("pageFragments", "park_column1_" + park.getIdParka() + "_"
				+ lang);
		remove("slike", "idParka_" + park.getIdParka());
	}

	public static void clearCache(final Dogadjaj dogadjaj) {
		remove("slike", "idDogadjaja_" + dogadjaj.getIdDogadjaja());
	}
}
